#ifndef __BSP_RGB_LCD_H
#define __BSP_RGB_LCD_H

#include "gd32f4xx.h"
#include <stdint.h>
#include "bsp_sdram.h"

/*******************************************************************************
 * Definitions
 ******************************************************************************/

#define LCD_WIDTH 800
#define LCD_HEIGHT 480
#define LCD_FB_BYTE_PER_PIXEL 1


#define HORIZONTAL_SYNCHRONOUS_PULSE 10
#define HORIZONTAL_BACK_PORCH 150
#define ACTIVE_WIDTH 800
#define HORIZONTAL_FRONT_PORCH 15

#define VERTICAL_SYNCHRONOUS_PULSE 10
#define VERTICAL_BACK_PORCH 140
#define ACTIVE_HEIGHT 480
#define VERTICAL_FRONT_PORCH 40

#define LCD_FRAME_BUF_ADDR 0XC0000000


extern uint16_t ltdc_lcd_framebuf0[800][480] __attribute__((at(LCD_FRAME_BUF_ADDR)));
extern uint16_t ltdc_lcd_framebuf1[800][480] __attribute__((at(LCD_FRAME_BUF_ADDR + 800*480*2)));
/*******************************************************************************
 * API
 ******************************************************************************/

#ifdef __cplusplus
extern "C" {
#endif


void RGB_LCD_Init(void);
void tli_layer0_init(void);
void tli_layer1_init(void);

void ipa_draw_rectangle(void);
#if defined(__cplusplus)
}
#endif

#endif /* __BSP_RGB_LCD_H */
